#include<bits/stdc++.h>
#include "graph.h"
using namespace std;
const int N=210;
int d[N],tot=1,f[N][N],sum[N],lst[N];
bitset<N>vis;
vector<int>e[N];
void dfs(int nw,int fa){
    d[nw]=NumberOfRoads();
    e[nw].resize(d[nw]+1);
    if(nw!=1){
        e[nw][LastRoad()]=fa;
        lst[nw]=LastRoad();
    }
    for(int i=1;i<=d[nw];i++){
        Move(i,nw+1);
        if(Color()==1){
            e[nw][i]=++tot;
            dfs(tot,nw);
        }
        else{
            e[nw][i]=Color()-1;
            e[Color()-1][LastRoad()]=nw;
            Move(LastRoad(),Color());
        }
    }
    if(lst[nw]){
        Move(lst[nw],nw+1);
    }
}
void dis(){
    memset(f,0x3f,sizeof(f));
    for(int i=1;i<=tot;i++){
        for(auto j:e[i]){
            f[i][j]=1;
        }
    }
    for(int k=1;k<=tot;k++){
        for(int i=1;i<=tot;i++){
            for(int j=1;j<=tot;j++){
                f[i][j]=min(f[i][j],f[i][k]+f[k][j]);
            }
        }
    }
    for(int i=1;i<=tot;i++){
        for(int j=i+1;j<=tot;j++){
            sum[f[i][j]]++;
        }
    }
}
void Inspect(int R){
    dfs(1,0);
    dis();
    for(int i=1;i<=R;i++){
        Answer(i,sum[i]);
    }
}